////////////////////////////////////////////////////////////////////////////////
// Filename: lightclass.h
////////////////////////////////////////////////////////////////////////////////
#ifndef _LIGHTCLASS_H_
#define _LIGHTCLASS_H_


//////////////
// INCLUDES //
//////////////
#include <d3dx10math.h>


////////////////////////////////////////////////////////////////////////////////
// Class name: LightClass
////////////////////////////////////////////////////////////////////////////////
class LightClass
{
public:
	LightClass();
	LightClass(const LightClass&);
	~LightClass();

	void SetDiffuseColor(float, float, float, float);
	void SetDirection(float, float, float);
	void SetDirectionForWater(float, float, float);
	D3DXVECTOR4 GetDiffuseColor();
	D3DXVECTOR3 GetDirection();
	D3DXVECTOR3 GetDirectionForWater();
	void SetSpecularColor(float red, float green, float blue, float alpha);
	void SetSpecularPower(float power);
	D3DXVECTOR4 GetSpecularColor();
	float GetSpecularPower();
	void SetAmbientColor(float red, float green, float blue, float alpha);
	D3DXVECTOR4 GetAmbientColor();

	D3DXVECTOR3 GetLightPos();
	D3DXMATRIX GetLightView();
	D3DXMATRIX GetLightVolume();
	void SetLightView();
	void SetLightPos(float x, float y, float z);
private:
	D3DXVECTOR4 m_ambientColor;
	D3DXVECTOR4 m_diffuseColor;
	D3DXVECTOR3 m_direction;
	D3DXVECTOR3 m_directionForWater;
	D3DXVECTOR4 m_specularColor;
	float m_specularPower;

	D3DXVECTOR3 m_LightPos;
	D3DXMATRIX m_LightView;
	D3DXMATRIX m_LightVolume;
};

#endif